package com.stefanini.pe.bbva.bp.in.bo.iface;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.stefanini.pe.bbva.bp.in.to.FactorTipoCambio;
import com.stefanini.pe.bbva.bp.in.to.MontoCalculadoraTO;
import com.stefanini.pe.bbva.bp.in.to.PosicionRebalanceoTO;
import com.stefanini.pe.bbva.bp.in.to.RebalanceoTO;

public interface CalculadoraModBOIface {
	public List<Map<String, Object>> listarDetalleDistribucion(String codCliente,String codContratos);//abarrios campo idrebalanceo edicion
	public List<Map<String, Object>> listarDetalleDistribucionModificar(String codCliente,String codContratos,String idrebalanceo); 
	public List<Map<String, Object>> listarDistribucionCategoriaActivos(String codCliente,String codContratos,String codRegistro);
	public List<Map<String, Object>> procesar(String monedaActual,List<Map<String, Object>> listaCalculadora,RebalanceoTO totalCalculadora);
	public List<Map<String, Object>> listarDistribucionRecursos();
	public List<Map<String, Object>> listarDistribucionRecursosModificar();
	public List<Map<String, Object>> procesarRecursos(String monedaActual,List<Map<String, Object>> listaCalculadora,RebalanceoTO totalRecursos);
	public List<PosicionRebalanceoTO> listarMonedasPosicionRebalanceo();
	public void procesarPosicionActual(String monedaSeleccionada,List<PosicionRebalanceoTO> listaPosicionActual,PosicionRebalanceoTO totalPosicionActual,List<Map<String, Object>> listaCalculadora,List<Map<String, Object>> listaRecursos);
	public void procesarPosicionSugerida(String monedaSeleccionada,List<PosicionRebalanceoTO> listaPosicionSugerida,PosicionRebalanceoTO totalPosicionSugerida,List<Map<String, Object>> listaCalculadora);
	public List<Map<String,Object>> procesarPerfilInversor(String idCatActivo,String codProducto,String codSubproducto,String monto,String moneda);
	public void guardarCalculadora(List<Map<String,Object>> listaCalculadora,List<Map<String,Object>> listaCalculadoraRecursos,
			List<Map<String,Object>> listaDistribucionCatActivo ,String codCliente,String idUsuarioAsesor,String comentario, 
			String nroContratos,String codUsuCrea,String terminal)  throws Exception;
	public List<Map<String,Object>> retornaDesviacionPropuesta(String categoriaActivos,String valores);
	public FactorTipoCambio obtenerTipoCambio();
	public ArrayList<MontoCalculadoraTO> cargarListaInput(String saldoInput);
	public FactorTipoCambio obtenerTipoCambio(String fecha);
	public void eliminaCalculadora(String idrebalanceo)  throws Exception;//abarrios elimina los registros rebalanceo edicion
	public List<Map<String, Object>> listarDistribucionCalcEdicionDetalle(String idrebalanceo, String idrebalanceodetalle);
}
